package java_0581_thread;

public class Thread01 {
    public static void main(String[] args) {
        //创建Cat对象，可以当作线程使用
        Cat cat = new Cat();
        cat.start();//启动线程
        /**
         * 1.
         *     public synchronized void start() {
         *          start0();
         *     }
         * 2.
         *      private native void start0();
         *      start0是本地方法，是JVM调用，底层是c/c++实现
         * 3，
         *      start0真正实现多线程的效果，而不是run
         */

        //主线程
        System.out.println(Thread.currentThread().getName());
        for (int i = 0; i < 60; i++) {
            System.out.println(i);
            try {
                Thread.sleep(1000);
            } catch (InterruptedException e) {
                throw new RuntimeException(e);
            }
        }
    }
}

//1.当一个类继承了Thread类，该类就可以当作线程使用
//2.重写run方法，写上自己的业务代码
//3. Thread 类是实现了Runnable接口的run方法

class Cat extends Thread{
    int times = 0;
    @Override
    public void run() {//重写run方法，写上自己的业务逻辑
        while (true) {
            System.out.println("Elysia"+(++times)+"线程名称"+Thread.currentThread().getName());
            //让该线程休眠 ctrl+alt+t
            try {
                Thread.sleep(1000);
            } catch (InterruptedException e) {
                throw new RuntimeException(e);
            }
            if (times == 80){
                break;
            }
        }
    }
}